home *** CD-ROM | disk | FTP | other *** search
/ F1 Licenseware / F1 Licenseware - Volume 1.iso / disks / 003.dms / 003.adf / TEXT / chapter13.txt < prev    next >
Text File  |  1992-09-02  |  7KB  |  194 lines

  1.  
  2.               The Absolute Beginners Guide To Amos
  3.               -------------------------------------
  4.                          Chapter thirteen
  5.                          ----------------
  6.  
  7. In this chapter, as promised earlier, we take a look at customizing our own 
  8. screens.  But first the answers to self test quiz number 3:
  9.  
  10.                        1. A       6. C
  11.                        2. B       7. C
  12.                        3. C       8. C
  13.                        4. A       9. A
  14.                        5. C      10. C
  15.  
  16. ---------------------------------------------------------------------------
  17.  
  18. EXAMPLE13.Amos is a small demonstration of opening screens of different
  19. sizes, colours and resolutions, why would we want to do that? Well let us
  20. say you were writing a word processor program.  If you were to use Amos`s
  21. default screen of 40 characters across it would look pretty shoddy against
  22. a nice 80 column text display which is very easy to set up.  There are many
  23. more uses which I do not want to go into yet to save you confusion.  Let us 
  24. get on with the SCREEN OPEN command.
  25.  
  26. SCREEN OPEN 0,320,200,16,lowres
  27.  
  28. The above line simulates the Amos default screen we have been using in all
  29. of our example programs so far.
  30. The 0 is just an I.D number so you can keep track of your screens if you 
  31. have more than one screen open at a time.  You can have up to eight screens
  32. open at once numbered 0-7.
  33.  
  34. The 320 is the width in pixels of our requested screen, if we changed this to 
  35. say 160 only half of our T.V screen would be used by our program (left half) 
  36. There is no real limit to the width of our screen, but for now we are best 
  37. off to stick to a maximum of 320 in lowres and 640 in hires.
  38.  
  39. The 16 is the number of colours we wish to be available to us, remember the
  40. more colours you employ the more memory you use and a possibility of slowing
  41. some programs down.  As a rule most people tend to use 4,8,16 or 32 colours
  42. for their screens.  There are some limits to the amount of colours you can
  43. use in hires but I would advise a maximum of eight.
  44.  
  45. LOWRES: There are only two options here LOWRES and HIRES, rather than explain
  46. the difference again take a look at EXAMPLE13.Amos and you will understand.
  47.  
  48. That is Amos`s default screen that we use, here are the custom screens used
  49. in EXAMPLE13.Amos
  50.  
  51. SCREEN OPEN 0,250,80,4,lowres
  52. -----------------------------
  53. Screen I.D = 0
  54. Width      = 250 pixels across 
  55. height     = 80 pixels top to bottom
  56. Colours    = 4, using 0 to 3
  57. Mode       = Lowres 
  58.  
  59.  
  60. SCREEN OPEN 0,640,256,8,hires
  61. -----------------------------
  62. Screen I.D = 0
  63. Width      = 640 pixels across 
  64. height     = 256 pixels top to bottom
  65. Colours    = 8, using 0 to 7
  66. Mode       = Hires (80 column text, 0-79)
  67.  
  68.  
  69. Make notes of the five attributes of SCREEN OPEN for future reference and you
  70. won`t go far wrong.  Experiment with EXAMPLE13.Amos and see what weird and
  71. wonderful screens you can come up with.
  72.  
  73.  
  74.  
  75. SCREEN DISPLAY
  76. ==============
  77.  
  78. Take a look at EXAMPLE13_1.Amos for a demonstration of how SCREEN DISPLAY 
  79. works. 
  80.  
  81. This command allows us to position a previously defined screen to anywhere on
  82. the TV display.  This is the syntax of the command.
  83.  
  84. SCREEN DISPLAY N,X,Y,W,H
  85. --------------------------
  86. don`t be put off yet because it looks odd, I will break this down for you.
  87.  
  88.  N
  89. ---
  90. is the number of the screen you wish to position.  Say for example we had
  91. two screens open, 0 and 1, and we want to position screen 1 then we would put
  92. a 1 here.
  93.  
  94.  X
  95. ---
  96. X is the position across the screen, but this time just to confuse us the
  97. positioning isn`t in pixels or characters but in hardware coordinates.
  98. For the moment don`t worry about why just remember that your X must be in the
  99. range 112 to 448, 112 being the left edge of the screen.
  100.  
  101.  Y
  102. ---
  103. Y is of course in hardware coordinates.  This tells SCREEN DISPLAY how far
  104. down the display we want to position our new screen.  The limits here are
  105. 0 to 312, with 0 being the top of the T.V screen.
  106.  
  107. W,H
  108. ---
  109. Width, Height, we can leave these out luckily because SCREEN DISPLAY will
  110. use the Width and Height of our previously opened custom screen so all we
  111. need in W and Hs place are two commas like this ,,
  112.  
  113.  
  114. In EXAMPLE13_2 A new command appears this the SCREEN command and instructs
  115. Amos as to which screen we want to use if we have more than one screen open.
  116. For example if we did
  117.  
  118. SCREEN OPEN 0,228,80,4,lowres
  119. SCREEN OPEN 1,150,100,8,lowres
  120.  
  121. Amos would now use screen one as the current screen so if for example we
  122. did PRINT "HELLO" the words HELLO would appear in screen 1.
  123.  
  124. This is where the SCREEN command comes in, what if we wanted the words HELLO
  125. printed on screen 0? Well we just issue the command,
  126.  
  127. SCREEN 0
  128.  
  129. And Amos is now using SCREEN 0 as the current screen. EXAMPLE13_2.Amos will 
  130. make things very clear.
  131.  
  132.  
  133. EXAMPLE13_2.Amos Is a neat compact program that performs an amazingly smooth
  134. hardware scroll using another screen command called SCREEN OFFSET.
  135.  
  136. HIDE: UNPACK 10 TO 0: WAIT VBL
  137. FOR A=1 TO 640
  138. SCREEN OFFSET 0,A,0
  139. WAIT VBL: NEXT A
  140.  
  141. Yep that`s all it is, prepare for breakdown.
  142.  
  143. HIDE: UNPACK 10 TO 0: WAIT VBL
  144. ------------------------------
  145. We know all of these commands, EXAMPLE13_3.Amos contains a SPACKed picture in
  146. bank 10.  UNPACK the picture to screen 0 and WAIT for a screen refresh just 
  147. in case.
  148.  
  149. FOR A=1 to 640
  150. --------------
  151. Remember FOR NEXT? This takes the variable A and gives it the value of 1 to
  152. start with and on each loop executes the commands between FOR and NEXT and
  153. adds one to As value until it reaches 640 when the FOR NEXT loop will end
  154. and the program will continue.
  155.  
  156. SCREEN OFFSET 0,A,0
  157. -------------------
  158. This is where it all happens the first 0 is the screen you wish to operate on
  159. the A is our variable from the FOR NEXT loop which is constantly changing
  160. as this is what is supposed to be the X coordinate of the screen it will make
  161. the screen move (scroll) the other 0 is the y offset of the screen which we
  162. leave unchanged for this example.
  163.  
  164. WAIT VBL: NEXT A
  165. ----------------
  166. Delete the WAIT VBL from this line (leave the NEXT A in though) and you will
  167. see why it is needed.
  168.  
  169.  
  170. So to recap SCREEN OFFSET screen number,x offset,y offset
  171.  
  172. This instruction has many uses and lots of different and startling effects
  173. can be achieved with it, but this is as far as we will go for now with screen
  174. commands as we have begun to stretch the limits of a beginners course in 
  175. Amos.
  176.  
  177.  
  178. Here are a few more SCREEN related commands that are easy to use that you
  179. may want to investigate further.
  180.  
  181. SCREEN HIDE     : Literally HIDE a screen from the users view.
  182. SCREEN SHOW     : Bring the hidden screen back
  183. H=SCREEN HEIGHT : H returns the height of the current screen
  184. W=SCREEN WIDTH  : W returns width
  185. C=SCREEN COLOUR : C returns amount of colours used by current screen
  186. SCREEN CLOSE N  : Deletes SCREEN number N and frees up the memory it used
  187.  
  188.  
  189.  
  190. End of chapter thirteen.
  191.  
  192.  
  193.   
  194.